package com.ruoyi.gd.invoice.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.ruoyi.common.annotation.ExcelDictFormat;
import com.ruoyi.common.convert.ExcelDictConvert;
import com.ruoyi.gd.detail.domain.ZDetail;
import lombok.Data;
import java.util.Date;
import java.util.List;


/**
 * 发票视图对象 z_invoice
 *
 * @author ruoyi
 * @date 2024-07-24
 */
@Data
@ExcelIgnoreUnannotated
public class ZInvoiceVo {

    private static final long serialVersionUID = 1L;

    /**
     * 发票票号
     */
    @ExcelProperty(value = "发票票号")
    private String number;

    /**
     * 标题
     */
    @ExcelProperty(value = "标题")
    private String title;

    private String machineNumber;

    private String code;

    /**
     * 开票日期
     */
    @ExcelProperty(value = "开票日期")
    private String kprq;

    private String checksum;

    /**
     * 购买方信息名称
     */
    @ExcelProperty(value = "购买方信息名称")
    private String buyerName;

    /**
     * 购买方信用代码
     */
    @ExcelProperty(value = "购买方信用代码")
    private String buyerCode;

    private String buyerAddress;

    private String buyerAccount;

    private String password;

    /**
     * 总金额
     */
    @ExcelProperty(value = "总金额")
    private BigDecimal amount;

    /**
     * 税额
     */
    @ExcelProperty(value = "税额")
    private BigDecimal taxAmount;

    /**
     * 价税合计（大写）
     */
    @ExcelProperty(value = "价税合计", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "大=写")
    private String totalAmountString;

    /**
     * 价税合计（数字）
     */
    @ExcelProperty(value = "价税合计", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "数=字")
    private BigDecimal totalAmount;

    /**
     * 销售方信息名称
     */
    @ExcelProperty(value = "销售方信息名称")
    private String sellerName;

    /**
     * 销售方信用代码
     */
    @ExcelProperty(value = "销售方信用代码")
    private String sellerCode;

    private String sellerAddress;

    private String sellerAccount;

    private String payee;

    private String reviewer;

    /**
     * 开票人
     */
    @ExcelProperty(value = "开票人")
    private String drawer;

    /**
     * 开票类型
     */
    @ExcelProperty(value = "开票类型")
    private String type;

    /**
     * 附件
     */
    private String fj;

    private List<ZDetail> detailList;

}
